

//#include <winsock2.h>
//#include <windows.h>

extern "C" int getch();


#include <iostream>
using namespace std;


#include "GProcessor.h"
#include "GFunction.h"
#include "GUtility.h"

using namespace GMachine;




int (*myfunc)(float a);

struct myclass{};
int (myclass::*memfunc)(float);




template<typename TRET, typename P1> 
inline int CallFunction(TRET(*f)(P1)) 
{ 
	
	return 2;
}

template<typename TRET, typename TCLASS, typename P1> 
inline int CallFunction(TRET(TCLASS::*f)(P1)) 
{ 
	cout<<typeid(TRET).name()<<endl;
	cout<<typeid(TCLASS).name()<<endl;
	cout<<typeid(P1).name()<<endl;
	return 2;
}


int test2()
{
	return 0;
}


struct FunctionProto
{
	enum FType
	{
		GlobalFunc,
		MemberFunc,
	};

	enum TType
	{

	};
	char type;
};